Passed
Pull Request — master (#241)
by Daniel
01:58
created

getRegNummer.ts ➔ handler   B

Complexity

Conditions 4

Size

Total Lines 54
Code Lines 38

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 38
dl 0
loc 54
rs 8.968
c 0
b 0
f 0
cc 4

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
import axios from "axios";
2
import { sanitize } from "isomorphic-dompurify";
3
import { VercelRequest, VercelResponse } from "@vercel/node";
4
import { IStatensVegvesenFullData } from "../scripts/types/typeDefinitions";
5
6
// https://autosys-kjoretoy-api.atlas.vegvesen.no/api-ui/index-enkeltoppslag.html
7
8
export default async function handler(
9
  req: VercelRequest,
10
  res: VercelResponse
11
): Promise<void> {
12
  const { regNummer = "" } = req.query;
13
14
  if (regNummer === undefined) {
15
    res.status(400).json({ error: "Mangler regNummer parameter" });
16
    return;
17
  }
18
19
  const urlToFetch = `https://www.vegvesen.no/ws/no/vegvesen/kjoretoy/felles/datautlevering/enkeltoppslag/kjoretoydata?kjennemerke=${regNummer}`;
20
21
  try {
22
    const response = await axios.get<IStatensVegvesenFullData>(urlToFetch, {
23
      headers: {
24
        "SVV-Authorization": `Apikey ${process.env.SVV_API_KEY}`,
25
        "X-Client-Identifier": "my-app",
26
      },
27
    });
28
29
    if (response.status === 200) {
30
      const {
31
        kjoretoydataListe: [
32
          {
33
            kjoretoyId: { kjennemerke },
34
            forstegangsregistrering: {
35
              registrertForstegangNorgeDato: forstegangsregistrering,
36
            },
37
            periodiskKjoretoyKontroll: { sistGodkjent: sistKontrollert },
38
          },
39
        ],
40
      } = response.data;
41
42
      console.log("response.data: ", response.data)
43
44
      const sanitizedData = {
45
        kjennemerke: sanitize(kjennemerke),
46
        //forstegangsregistrering: sanitize(forstegangsregistrering.toString()),
47
        forstegangsregistrering: sanitize(forstegangsregistrering),
48
        //sistKontrollert: sanitize(sistKontrollert.toString()),
49
        sistKontrollert: sanitize(sistKontrollert),
50
      };
51
52
      res.status(200).json(sanitizedData);
53
    } else {
54
      res.status(500).json({ error: `Feil under henting av data - ${response}` });
55
    }
56
  } catch (error) {
57
    console.error(error);
58
    res.status(500).json({ error: `Feil under henting av data - ${error}` });
59
  }
60
}
61